Fixes #75510
authorKristian Rietveld <kris@gtk.org>
Sat, 13 Apr 2002 20:48:31 +0000 (20:48 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Sat, 13 Apr 2002 20:48:31 +0000 (20:48 +0000)
Sat Apr 13 22:49:45 2002  Kristian Rietveld  <kris@gtk.org>

        Fixes #75510

        * gtk/gtktreeselection.c (gtk_tree_selection_get_selected): make this
        function work correctly and more sane

        * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): remove
        node->children from rbtree before emitting GtkTreeSelection::changed

Sat Apr 13 17:15:12 2002  Kristian Rietveld  <kris@gtk.org>

        * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_init): dont set
        the mode to GTK_CELL_RENDERER_MODE_EDITABLE by default,
        (gtk_cell_renderer_text_class_init): for some reason our default for
        editable was TRUE, of course this is FALSE.
        (gtk_cell_renderer_text_set_property): update mode when editable
        has been changed.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkcellrenderertext.c
gtk/gtktreeselection.c
gtk/gtktreeview.c

index 9f7b62393c22c4b84f818a002ecbd0a488408179..27dcfc3206412a1663708a4e7e664871b621acba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+Sat Apr 13 22:49:45 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Fixes #75510
+
+       * gtk/gtktreeselection.c (gtk_tree_selection_get_selected): make this
+       function work correctly and more sane
+
+       * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): remove
+       node->children from rbtree before emitting GtkTreeSelection::changed
+
+Sat Apr 13 17:15:12 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_init): dont set
+       the mode to GTK_CELL_RENDERER_MODE_EDITABLE by default,
+       (gtk_cell_renderer_text_class_init): for some reason our default for
+       editable was TRUE, of course this is FALSE.
+       (gtk_cell_renderer_text_set_property): update mode when editable
+       has been changed.
+
 2002-04-12  jacob berkman  <jacob@ximian.com>
 
        * gdk/x11/xsettings-client.c (fetch_card8): fix cut-n-paste bug
index 9f7b62393c22c4b84f818a002ecbd0a488408179..27dcfc3206412a1663708a4e7e664871b621acba 100644 (file)
@@ -1,3 +1,22 @@
+Sat Apr 13 22:49:45 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Fixes #75510
+
+       * gtk/gtktreeselection.c (gtk_tree_selection_get_selected): make this
+       function work correctly and more sane
+
+       * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): remove
+       node->children from rbtree before emitting GtkTreeSelection::changed
+
+Sat Apr 13 17:15:12 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_init): dont set
+       the mode to GTK_CELL_RENDERER_MODE_EDITABLE by default,
+       (gtk_cell_renderer_text_class_init): for some reason our default for
+       editable was TRUE, of course this is FALSE.
+       (gtk_cell_renderer_text_set_property): update mode when editable
+       has been changed.
+
 2002-04-12  jacob berkman  <jacob@ximian.com>
 
        * gdk/x11/xsettings-client.c (fetch_card8): fix cut-n-paste bug
index 9f7b62393c22c4b84f818a002ecbd0a488408179..27dcfc3206412a1663708a4e7e664871b621acba 100644 (file)
@@ -1,3 +1,22 @@
+Sat Apr 13 22:49:45 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Fixes #75510
+
+       * gtk/gtktreeselection.c (gtk_tree_selection_get_selected): make this
+       function work correctly and more sane
+
+       * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): remove
+       node->children from rbtree before emitting GtkTreeSelection::changed
+
+Sat Apr 13 17:15:12 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_init): dont set
+       the mode to GTK_CELL_RENDERER_MODE_EDITABLE by default,
+       (gtk_cell_renderer_text_class_init): for some reason our default for
+       editable was TRUE, of course this is FALSE.
+       (gtk_cell_renderer_text_set_property): update mode when editable
+       has been changed.
+
 2002-04-12  jacob berkman  <jacob@ximian.com>
 
        * gdk/x11/xsettings-client.c (fetch_card8): fix cut-n-paste bug
index 9f7b62393c22c4b84f818a002ecbd0a488408179..27dcfc3206412a1663708a4e7e664871b621acba 100644 (file)
@@ -1,3 +1,22 @@
+Sat Apr 13 22:49:45 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Fixes #75510
+
+       * gtk/gtktreeselection.c (gtk_tree_selection_get_selected): make this
+       function work correctly and more sane
+
+       * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): remove
+       node->children from rbtree before emitting GtkTreeSelection::changed
+
+Sat Apr 13 17:15:12 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_init): dont set
+       the mode to GTK_CELL_RENDERER_MODE_EDITABLE by default,
+       (gtk_cell_renderer_text_class_init): for some reason our default for
+       editable was TRUE, of course this is FALSE.
+       (gtk_cell_renderer_text_set_property): update mode when editable
+       has been changed.
+
 2002-04-12  jacob berkman  <jacob@ximian.com>
 
        * gdk/x11/xsettings-client.c (fetch_card8): fix cut-n-paste bug
index 9f7b62393c22c4b84f818a002ecbd0a488408179..27dcfc3206412a1663708a4e7e664871b621acba 100644 (file)
@@ -1,3 +1,22 @@
+Sat Apr 13 22:49:45 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Fixes #75510
+
+       * gtk/gtktreeselection.c (gtk_tree_selection_get_selected): make this
+       function work correctly and more sane
+
+       * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): remove
+       node->children from rbtree before emitting GtkTreeSelection::changed
+
+Sat Apr 13 17:15:12 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_init): dont set
+       the mode to GTK_CELL_RENDERER_MODE_EDITABLE by default,
+       (gtk_cell_renderer_text_class_init): for some reason our default for
+       editable was TRUE, of course this is FALSE.
+       (gtk_cell_renderer_text_set_property): update mode when editable
+       has been changed.
+
 2002-04-12  jacob berkman  <jacob@ximian.com>
 
        * gdk/x11/xsettings-client.c (fetch_card8): fix cut-n-paste bug
index 9f7b62393c22c4b84f818a002ecbd0a488408179..27dcfc3206412a1663708a4e7e664871b621acba 100644 (file)
@@ -1,3 +1,22 @@
+Sat Apr 13 22:49:45 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Fixes #75510
+
+       * gtk/gtktreeselection.c (gtk_tree_selection_get_selected): make this
+       function work correctly and more sane
+
+       * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): remove
+       node->children from rbtree before emitting GtkTreeSelection::changed
+
+Sat Apr 13 17:15:12 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_init): dont set
+       the mode to GTK_CELL_RENDERER_MODE_EDITABLE by default,
+       (gtk_cell_renderer_text_class_init): for some reason our default for
+       editable was TRUE, of course this is FALSE.
+       (gtk_cell_renderer_text_set_property): update mode when editable
+       has been changed.
+
 2002-04-12  jacob berkman  <jacob@ximian.com>
 
        * gdk/x11/xsettings-client.c (fetch_card8): fix cut-n-paste bug
index b64a0e0dbbc85a6d44127ac2b5d0a21efd11db04..19619cad49e18408c51d58279bbfa32020242038 100644 (file)
@@ -146,7 +146,6 @@ gtk_cell_renderer_text_init (GtkCellRendererText *celltext)
   GTK_CELL_RENDERER (celltext)->yalign = 0.5;
   GTK_CELL_RENDERER (celltext)->xpad = 2;
   GTK_CELL_RENDERER (celltext)->ypad = 2;
-  GTK_CELL_RENDERER (celltext)->mode = GTK_CELL_RENDERER_MODE_EDITABLE;
   celltext->fixed_height_rows = -1;
   celltext->font = pango_font_description_new ();
 }
@@ -230,7 +229,7 @@ gtk_cell_renderer_text_class_init (GtkCellRendererTextClass *class)
                                    g_param_spec_boolean ("editable",
                                                          _("Editable"),
                                                          _("Whether the text can be modified by the user"),
-                                                         TRUE,
+                                                         FALSE,
                                                          G_PARAM_READABLE | G_PARAM_WRITABLE));
 
   g_object_class_install_property (object_class,
@@ -979,6 +978,10 @@ gtk_cell_renderer_text_set_property (GObject      *object,
     case PROP_EDITABLE:
       celltext->editable = g_value_get_boolean (value);
       celltext->editable_set = TRUE;
+      if (celltext->editable)
+        GTK_CELL_RENDERER (celltext)->mode = GTK_CELL_RENDERER_MODE_EDITABLE;
+      else
+        GTK_CELL_RENDERER (celltext)->mode = GTK_CELL_RENDERER_MODE_INERT;
       g_object_notify (object, "editable_set");
       break;
 
index cc34946da17b0206da4fdb11f03a4c65d79921c0..7236376f171d4f2459a1468d098c2ccc8834fe46 100644 (file)
@@ -354,6 +354,7 @@ gtk_tree_selection_get_selected (GtkTreeSelection  *selection,
   GtkRBNode *node;
   GtkTreePath *anchor_path;
   gboolean retval;
+  gboolean found_node;
 
   g_return_val_if_fail (GTK_IS_TREE_SELECTION (selection), FALSE);
   g_return_val_if_fail (selection->type != GTK_SELECTION_MULTIPLE, FALSE);
@@ -371,29 +372,30 @@ gtk_tree_selection_get_selected (GtkTreeSelection  *selection,
   if (anchor_path == NULL)
     return FALSE;
 
-  if (iter == NULL)
-    {
-      gtk_tree_path_free (anchor_path);
-      return TRUE;
-    }
-
   retval = FALSE;
 
-  if (!_gtk_tree_view_find_node (selection->tree_view,
-                                 anchor_path,
-                                 &tree,
-                                 &node) &&
-      ! GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED))
+  found_node = !_gtk_tree_view_find_node (selection->tree_view,
+                                          anchor_path,
+                                          &tree,
+                                          &node);
+
+  if (found_node && GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED))
     {
-      /* We don't want to return the anchor if it isn't actually selected.
+      /* we only want to return the anchor if it exists in the rbtree and
+       * is selected.
        */
-      retval = FALSE;
+      if (iter == NULL)
+       retval = TRUE;
+      else
+        retval = gtk_tree_model_get_iter (selection->tree_view->priv->model,
+                                          iter,
+                                          anchor_path);
     }
   else
     {
-      retval = gtk_tree_model_get_iter (selection->tree_view->priv->model,
-                                        iter,
-                                        anchor_path);
+      /* We don't want to return the anchor if it isn't actually selected.
+       */
+      retval = FALSE;
     }
 
   gtk_tree_path_free (anchor_path);
index 271633d07a9b496f4c6635e306173847882703ec..5d4b8704422244c27b9efa5cc0ab6caf66a513ae 100644 (file)
@@ -8837,8 +8837,12 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view,
     }
 
   if (gtk_tree_view_unref_and_check_selection_tree (tree_view, node->children))
-    g_signal_emit_by_name (G_OBJECT (tree_view->priv->selection), "changed", 0);
-  _gtk_rbtree_remove (node->children);
+    {
+      _gtk_rbtree_remove (node->children);
+      g_signal_emit_by_name (G_OBJECT (tree_view->priv->selection), "changed", 0);
+    }
+  else
+    _gtk_rbtree_remove (node->children);
 
   if (tree_view->priv->expand_collapse_timeout)
     {